Application software development often involves integrating an application program to an application programming interface (API) or a library. An API is a set of programming instructions and standards for accessing a software application. A software company releases an API to the public so that other software developers can design products that use the services provided by the application software of the software company. A library is a number of standard built-in functions that are grouped together and placed in a common place. Instead of writing code to perform standard operations, software developers use calls to the library functions to carry out various useful tasks. For example, input and output operations, math operations, etc. are typically implemented by library functions. Software designers need to test their software for issues associated with calls to APIs and library functions, particularly issues that could result in errors or downtime. Such testing is especially important for an application that supports a multi-billion dollar business.
It would be desirable to implement a method and/or architecture for testing calling code dynamically with random error injection based on a user-specified configuration.